package models

import (
	"fmt"
	"qld2devservice/utils"
	"strconv"
)

type QldOutletProtocol struct {
	Id          int64 `gorm:"primary_key"`
	GrpcAddress string
	GrpcPort    string
	Des         string
}

func GetQldOutletProtocolById(id int64) (QldOutletProtocol, error) {
	var qldOutletProtocols []QldOutletProtocol
	err := DB.Where("id = ?", id).Find(&qldOutletProtocols).Error
	if err != nil {
		newErr := utils.WrapError(err, "GetQldOutletProtocolById:1,数据库获取设备协议失败,id="+strconv.FormatInt(id, 10))
		utils.MyPrint(utils.PRINT_ERROR, newErr.Error())
		return QldOutletProtocol{}, newErr
	} else if len(qldOutletProtocols) == 0 {
		newErr := utils.WrapError(err, "GetQldOutletProtocolById:2,数据库获取设备协议未获取到,id="+strconv.FormatInt(id, 10))
		utils.MyPrint(utils.PRINT_ERROR, newErr.Error())
		return QldOutletProtocol{}, newErr
	} else if len(qldOutletProtocols) > 1 {
		newErr := utils.WrapError(err, "GetQldOutletProtocolById:3,数据库获取设备协议获取到多个,"+fmt.Sprintf("%+v", qldOutletProtocols))
		utils.MyPrint(utils.PRINT_ERROR, newErr.Error())
		return qldOutletProtocols[0], newErr
	}
	return qldOutletProtocols[0], nil
}
